UE4 RPG游戏实战开发(六):背包系统 | 您所在的位置:网站首页 › umg 动画 › UE4 RPG游戏实战开发(六):背包系统 |
背包系统UMG 在这篇教程中,我要为角色开发一个背包系统,首先在开发这个功能的时候,我们得先知道在 UE 中如何去创建 UI,这里就必须要说到 UMG 了,它提供了许多的 UI 组件,例如最基本的 "文本(Textblock)","图片(UImage)", "进度条(ProcessBar)" 等等,如图: 创建一个 UI 文件夹,用于存放项目所有 UMG 相关的文件,随后双击打开后右键创建一个 Widget Blueprint, 取名 UI_Inventory。 在游戏中打开背包需要添加按键事件,在这个工程就用 I 键来映射打开背包事件吧!在工程设置中添加打开背包事件,并用键盘 I 键来映射。 打开角色蓝图,右键搜索 OpenBag 函数,然后 CreateWidget,选择上文中的 UI_Inventory,并显示鼠标。 接下来,我们来完成背包的视图布局,首先给背包添加背景色,在画布中拖入 Border,调整大小,然后居中, 修改 Border 的背景色为灰色半透明, 在 Border 上再拖入 Canvas Panel 画布组件,用于绘制标题,背包关闭按钮,以及容器列表,步骤如下, 先设置标题,Anchors 向上居中设置关闭按钮,Anchors 向上居右,在 Button 上附加 Overlay UImage 组件,选择关闭 icon底部添加俩个按钮,使用道具按钮,以及丢弃道具按钮容器这里用到了俩个组件 "Scroll Box" 和 "Wrap Box",将 ScrollBox 添加进来,居中然后调整大小,再在其中加入 WrapBox 作为它的子视图这样我们的背包界面就完成了,效果如图: 组件的层次结构如图: 另外,由于在蓝图中需要获取 UI 的控件变量,所以在创建的时候需要给控件命名,以及勾选成为可以获取的变量,如图: 背包中将显示一个个的道具以及它的数量,道具将由 Wrap Box 作为容器将其显示出来,所以接下来我们要设计一下格子的 UI。 道具格子道具的格子也通过 Widget 来创建,右键创建 Widget Blueprint,然后取名 UI_ItemCube, 设计如图所示,并且也需要对控件命名以及勾选成为变量: 接下来,我们从商城中去下载一些道具素材,如图: 下载完毕后,还需要自己整理一些道具的 icon, 由于资源包里没有提供,所以我就自己在编辑器里截图了一些道具,如图: 导入到工程中,如图: 创建道具 Actor, 右键 Blueprint Class -> Actor, 取名 ItemPickUp_BP, 双击打开, 然后 Add Component 分别为 StaticMesh 和 Sphere Collosion, 如图: 创建一个枚举类型 LiquorType_E,用于分类道具: 给枚举补充类型,如图: 回到 ItemPickUp_BP 中,添加俩个变量,类型分别是 LiquorType_E 和 Texture2D,如图: 随后在 ItemPickUp_BP 文件上右键创建它的子类,Health_BP, 并给它的成员变量赋值和配置,步骤如下: 然后接下来就简单了,直接复制 Health_BP,并将剩余的道具配置完成,最终如图所示: 道具对象创建好以后,我们在背包中先默认添加一些道具,这时候就需要一个数组来管理这些默认道具。 首先在编辑器中创建一个结构体 InventoryItemInfo_S,来定义背包道具格子: 然后,打开玩家角色蓝图,定义一个数组变量,数组的类型为 InventoryItemInfo_S,然后添加三个默认值,作为玩家背包中的初始化商品: 数据有了,接下来就让它们显示在背包中吧!打开 UI_Inventory 的 Event Graph 来加载商品,蓝图逻辑如下: 编译保存,然后运行游戏中打开背包,你就能看到物品在背包中显示了, 最后,还要加上关闭背包的事件,给关闭按钮添加点击事件,并完成蓝图逻辑如下: 这样一个简单的背包就完成了,在后续的文章中,会对其进一步优化和完善。今天的文章到这里就结束拉,感谢~ 我是杰少,如果您觉的我写的不错,那请给我 点赞+评论+收藏 后再走哦! 请你喝杯 ☕️ 点赞 + 关注哦~ 阅读完记得给我点个赞哦,有👍 有动力关注公众号--- HelloWorld杰少,第一时间推送新姿势最后,创作不易,如果对大家有所帮助,希望大家点赞支持,有什么问题也可以在评论区里讨论😄~** |
CopyRight 2018-2019 实验室设备网 版权所有 |